package com.ly.wxPay.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.bean.dto.CommonBatchUpdateDTO;
import com.ly.wxPay.bean.dto.WxOrderDTO;
import com.ly.wxPay.bean.entity.WxOrder;
import com.ly.common.core.bean.R;
import com.ly.wxPay.enums.OrderStatus;

import java.util.List;

/**
 * 支付-订单表-服务
 *
 * @author luoyun
 * @Date: 2025-11-22
 */
public interface IWxOrderService extends IService<WxOrder> {

    /**
     * 查询-id
     */
    R getId(String id);

    /**
     * 列表
     * @param entity
     * @return
     */
    R getList(WxOrder entity);

    /**
     * 分页
     */
    R getPage(WxOrder entity, Page<WxOrder> page);

    /**
     * 新增
     */
    R add(WxOrder entity);

    /**
     * 修改
     */
    R edit(WxOrder entity);

    /**
     * 删除-id
     */
    R delete(String id);

    /**
     * 批量删除
     */
    R deleteBatch(String ids);

    /**
     * 批量新增或修改
     */
    R updateBatch(CommonBatchUpdateDTO<WxOrder> dto);

    /**
     * 查询订单状态-订单号
     * @param orderNo
     * @return
     */
    String getOrderStatus(String orderNo);

    /**
     * 生成订单
     */
    WxOrder addOrder(WxOrderDTO dto);

    R updateStatusByOrderNo(String orderNo, OrderStatus success);

    /**
     * 查询创建超过minutes分钟并且未支付的订单
     *
     * @param minutes
     * @return
     */
    List<WxOrder> getNoPayOrderByDuration(int minutes);
}
